#include "stdafx.h"
#include <getopt.h>
#include "config.h"
#include "url_type_cache.h"

void iptables_init();
int nfq_start(int ethout);
void checkurl_init();

void showhelp();
void showversion();
void myexit();

int main(int argc, char* argv[])
{
/*	char* const short_options		= "hve:";
	struct option long_options[]	= {
		{ "help", 0, NULL, 'n' }
		, { "version", 0, NULL, 'v'}
		, { "eth", 1, NULL, 'e'}
		, { NULL, 0, NULL, 0}
	};
	int			ethout		= -1;
	int			c;

	while((c = getopt_long(argc, argv, short_options, long_options, NULL)) != -1)
	{
		switch(c)
		{
		case 'h':
			showhelp();
			return 0;
		case 'v':
			showversion();
			return 0;
		case 'e':
			ethout = atoi(optarg);
			break;	
		}
	}
*/
	int		ethout		= -1;

	atexit(myexit);
	openlog("[ufs]", LOG_PID, LOG_USER);
	// 检测输出网卡硬件编号
	ethout = ini_get_ethout();
	if(-1 == ethout)
	{
		syslog(LOG_ERR, "未指定要监控网卡");
		return -1;
	}
	
	// 初始化iptables
	iptables_init();

	// 初始化URL检测线程
	checkurl_init();
	
	// 初始化网址类型缓存库
	utc_init();

	// 开始网止监控
	nfq_start(ethout);

	return 0;
}

/*
 * 显示帮助
 */
void showhelp()
{

}

/*
 * 显示版本
 */
void showversion()
{

}

/*
 * 我的退出函数
 */
void myexit()
{
	int			i;

	closelog();

	for(i = 0; i < 1024; i++)
	{
		close(i);
	}
}
